﻿// 大转盘原理:随机出一个数字,通过后台算出在那个概率区间返回指定跳转的角度 例
// 一等奖 概率1% 如果在1-100 随机出100则跳转一等奖的角度范围内
// 二等奖 概率2% 如果在1-100 随机出99-98则跳转二等奖的角度范围内
// 三等奖 概率52% 如果在1-100 随机出97-1则跳转三等奖的角度范围内
function randomnum(smin, smax) {// 获取2个值之间的随机数
	var Range = smax - smin;
	var Rand = Math.random();
	return (smin + Math.round(Rand * Range));
}
var num0=0,num1=0,num2=0;//123等奖数目
var number=100;//中奖概率基数
function runzp() {
	var data = '[{"id":1,"prize":"590大洋","v":1.0},{"id":2,"prize":"100RMB","v":2.0},{"id":3,"prize":"安慰奖","v":48.0}]';// 奖项json, v 用于控制中奖概率,人数
	var obj = eval('(' + data + ')');//计算data字符串，并执行其中的的 JavaScript 代码
	var result = randomnum(1, 100);//结果1-100随机数
	var line = 0;//随机中奖数字，用于跳转中奖位置
	var returnobj = "0";//'0'不中奖,其他中奖
	var index = 0;//中奖等级 0 1 2

	//中奖概率计算 根据v数据
	for ( var i = 0; i < obj.length; i++) {
		var obj2 = obj[i];
		var c = parseFloat(obj2.v);//获得data中v，表示有多少个奖
		line = number - c;
		if (c != 0) {
			if (result > line && result <= (line + c)) {//对比result和line数字
				index = i;
				returnobj = obj2;
				break;
			}
		}
	}
	var angle =0;//指针
	var message = "";//提示语
	var myreturn = new Object;//抽奖结果对象
	if (returnobj != "0") {// 有奖
		var angle0 = [ 344, 373 ];//一等奖角度位置
		var angle1 = [ 226, 256 ];//二等奖角度位置
		var angle2 = [ 109, 136 ];//三等奖角度位置
		switch (index) {
		case 0:// 一等奖
			var r0 = randomnum(angle0[0], angle0[1]);
			angle = r0;
			if(num0>=parseFloat(obj[0].v)){obj[0].prize='一等奖抽完了';break;}
			message = "恭喜中奖了";
			num0++;
			break;
		case 1:// 二等奖
			var r1 = randomnum(angle1[0], angle1[1]);
			angle = r1;
			if(num1>=parseFloat(obj[1].v)){obj[1].prize='二等奖抽完了';break;}
			message = "恭喜中奖了";
			num1++;
			break;
		case 2:// 三等奖
			var r2 = randomnum(angle2[0], angle2[1]);
			angle = r2;
			if(num2>=parseFloat(obj[2].v)){obj[2].prize='三等奖抽完了';break;}
			message = "恭喜中奖了";
			num2++;
			break;
		}
		myreturn.prize = returnobj.prize;
	} else {// 没有
		message = "再接再厉";
		var angle3 = [ 17, 103 ];
		var angle4 = [ 141, 220 ];
		var angle5 = [ 259, 340 ];
		var r = randomnum(3, 5);
		var angle;
		switch (r) {
		case 3:
			var r3 = randomnum(angle3[0], angle3[1]);
			angle = r3;
			break;
		case 4:
			var r4 = randomnum(angle4[0], angle4[1]);
			angle = r4;
			break;
		case 5:
			var r5 = randomnum(angle5[0], angle5[1]);
			angle = r5;
			break;
		}
		myreturn.prize = "继续努力!";
	}
	myreturn.angle = angle;
	myreturn.message = message;
	return myreturn;//返回抽奖结果对象
}